export default {
  // 实现当点击dom元素外，就执行传递过来的一个执行方法
  outClick: {
    inserted (dom, obj, vnode) {
      // 在自定义指令vnode.context组件上增加一个函数---
      // 目的: 当销毁的时候也要使用这个函数, 所以需要注册一个公共的方法, 销毁的同一个方法
      vnode.context.add = (e) => {
        e.preventDefault()
        // contains判断一个元素是否在另一个元素里面
        // 判断点击事件是否在dom元素里
        // e.target表示时间触发对象
        if (!dom.contains(e.target)) {
          // 如果点击事件不在树形结构中，就执行传递过来的函数方法
          obj.value()// 在标签上传过来的是点击事件关闭弹窗,执行关闭弹框的函数
        }
      }
      // 判断当前点击的的是否包含在dom元素内
      document.addEventListener('click', vnode.context.add)
    },
    // 销毁点击事件
    unbind (dom, obj, vnode) {
      document.removeEventListener('click', vnode.context.add)
    }
  }
}
